package com.liangtian.mdm.material.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import com.github.pagehelper.PageInfo;
import com.liangtian.mdm.material.model.Wlwl;
import com.liangtian.mdm.material.model.WlwlField;
import com.liangtian.mdm.material.model.WlwlLan;
import com.liangtian.mdm.material.model.WlwlTzl;

public interface WlwlService {
    /**
     * 根据查询条件获取物料正式表数据
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    @SuppressWarnings("rawtypes")
    public PageInfo queryWlwl(Map<String, Object> cond);

    /**
     * 获取指定物料编码的物料正式表数据
     *
     * @param wlbm
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public Wlwl getWlwlByWlbm(String wlbm);

    /**
     * 根据物料类别ID获得物料正式表数据
     *
     * @param wllbid
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public List<Wlwl> getWlwlByWllbid(String wllbid);

    /**
     * 快速找出用户所输入长描述的相匹配值
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public List<String> getQcSimilar(Map<String, Object> cond);

    /**
     * 更新物料正式表数据
     *
     * @param wlwl
     * @author jyh
     * @date 2016-09-19
     */
    public void updateWlwl(Wlwl wlwl);

    /**
     * 晋煤 更新物料正式表 启用系统 filed1
     */
    public void updateWlwlFiled(Map<String, Object> cond);

    /**
     * 更新物料正式表数据状态(冻结/解冻)
     *
     * @param ids
     * @param status
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public int updateStatus(List<String> ids, String status);

    /**
     * 根据条件更新正式表物料数据状态
     *
     * @param cond
     * @author jyh
     * @date 2016-09-19
     */
    public void updateWlwlStatus(Map<String, Object> cond);

    /**
     * 选择物料代码数量(供生产物料/润滑油用)
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public PageInfo<Wlwl> selectWlwl(Map<String, Object> cond);

    /**
     * 正式表物料数据导出
     *
     * @param cond
     * @param response
     * @author jyh
     * @date 2016-09-19
     */
    public void wlwlExport(Map<String, Object> cond, HttpServletResponse response);

    /**
     * 批量归档物料数据
     *
     * @param cond
     * @author jyh
     * @date 2016-09-19
     */
    public void gdWlwl(Map<String, Object> cond, List<String> list);

    /**
     * 查询物料多语言数据
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2016-09-19
     */
    public List<WlwlLan> getWlwlLan(Map<String, Object> cond);

    /**
     * 正式物料明细数据导出
     *
     * @param cond
     * @param response
     * @author jyh
     * @date 2016-09-19
     */
    public void wlwlMxExport(Map<String, Object> cond, HttpServletResponse response);

    /**
     * 正式物料插入分发数据
     *
     * @param ids, actiontype
     * @author jyh
     * @date 2016-09-19
     */
    public void insertWlwlDis(List<String> ids, String actiontype);

    public PageInfo<Wlwl> queryWlwl_en(Map<String, Object> cond);

    public List<String> getQcSimilar_en(Map<String, Object> cond);

    public void wlwlExport_en(Map<String, Object> cond, HttpServletResponse response);

    /**
     * 手动分发
     *
     * @param wlbms
     * @param sysCodes
     * @author jyh
     * @date 2016-09-19
     */
    public void handDis(List<String> wlbms, List<String> sysCodes);

    public List<Wlwl> queryWlwlByCond(Map<String, Object> cond);

    /**
     * 根据综合条件查询物料审核记录
     *
     * @param cond
     * @return
     * @author ly
     * @date 2018-01-25
     */
    public PageInfo queryWlwlByApprove(Map<String, Object> cond);

    //物料主表导出
    public void exportWlwl(List<Wlwl> list, List<WlwlField> field, HttpServletResponse response);

    @SuppressWarnings("rawtypes")
    public PageInfo queryWlwl2(Map<String, Object> cond);

    public PageInfo queryWlwlUpdByApprove(Map<String, Object> cond);
}
